<?php

namespace backend\components\viewWidget;

use backend\models\Admin;
use common\constant\UserConstant;
use common\models\User;
use yii\bootstrap\Html;

class Formatter extends \yii\i18n\Formatter{

    public $dateFormat = 'php:Y-m-d';
    public $datetimeFormat = 'php:Y-m-d H:i:s';

    public function asDate($value, $format = null){
        if(!$value) return null;
        return parent::asDate($value, $format);
    }

    public function asDatetime($value, $format = null){
        if(!$value) return null;
        return parent::asDatetime($value, $format);
    }

    /**
     * 展示admin 用户名
     * @param $value
     * @return mixed|string|null
     */
    public function asAdmin($value){
        if(!$value) return null;
        $auditor = Admin::getAuditorMap();
        return $auditor[$value] ?? 'Unknown';
    }

    /**
     * 展示状态 适用于后台用户和前端用户
     * @param $value
     * @return mixed|string|null
     */
    public function asUserStatus($value){
        if($value===null) return null;
        $map = UserConstant::$statusConf;
        return $map[$value] ?? 'Unknown';
    }

    /**
     * 作为头像展示
     * @param $val
     * @return string|null
     */
    public function asAvatar($val){
        if(!$val) return null;
        $format = '70';
        return Html::img($val, ['style'=>"max-width:{$format}px;max-height:{$format}px"]);
    }

    /**
     * 作为缩略图展示
     * @param $val
     * @return string|null
     */
    public function asImages($val)
    {
        if(!$val) return null;
        $arr = json_decode($val,true);
        if (!is_array($arr)||empty($arr)) return null;
        $format = '70';
        $re = '';
       foreach ($arr as $v){
          $re .= Html::img($v, ['style'=>"margin-right:5px;max-width:{$format}px;max-height:{$format}px"]);
       }
       return $re;
    }

    /**
     * 作为JSON展示
     * @param $val
     * @return string|null
     */
    public function asJson($val){
        return '<pre>'.json_encode(json_decode($val), JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT).'</pre>';
    }
}